<?php
namespace app\admin\controller;
use think\Controller;

/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/10/12
 * Time: 11:04
 */
class Com extends Controller
{
    // 检测非法登录
    public function __construct()
    {
        parent::__construct();
        if(!session('uid')){
            $this->error('请登录',U('Login/login'),2);
        }
        // 调取检测权限方法
        $comRole = $this->checkPower();
        if($comRole == NULL){
            $this->error('请向管理员申请权限');
        }
    }
    // 检测权限
    public function checkPower()
    {
        // 获取当前用户的ID
        $adminId = session('uid');
        // 获取当前用户对应的角色
        $roleIdList = M('AdminRole')->where(array('admin_id'=>$adminId))->getField('rid',true);
        // 获取当前 控制器 和 方法 【拼接】
        $power = CONTROLLER_NAME.'/'.ACTION_NAME;
        //设置首页所有登录用户可访问
        if($power == "Index/index"){
            return 1;
        }
        // 查询当前(控制器/方法)对应的权限的ID
        $power_id = M('Power')->where(array('power_url'=>$power))->getField('power_id');
        // 查询当前权限对应的所有角色
        $roleId = M('RolePower')->where(array('pid'=>$power_id))->getField('rid',true);
        // 检测是否有公共项
        $roles = array_intersect($roleIdList, $roleId);
        return $roles;
    }
}